import type { PageParam, PageResult } from '@vben/request';

import { requestClient } from '#/api/request';

export namespace CmtBaseMerchantStaffApi {
  /** 商户员工信息 */
  export interface BaseMerchantStaff {
    id?: number; // ID
    communityId?: number; // 社区ID
    merchantId: number; // 商户ID
    userId: number; // 会员ID
    staffName?: string; // 员工姓名
    staffPhone?: string; // 员工电话
    role?: number; // 角色：1普通员工 2管理员 3超级管理员
    permissions?: string; // 权限(JSON数组)
    joinTime?: string; // 加入时间
    staffStatus?: number; // 状态：0离职 1在职
    status?: number; // 状态：0停用 1启用
    remark?: string; // 备注
    createTime?: string; // 创建时间
  }
}

/** 查询商户员工分页 */
export function getBaseMerchantStaffPage(params: PageParam) {
  return requestClient.get<PageResult<CmtBaseMerchantStaffApi.BaseMerchantStaff>>(
    '/cmt/base-merchant-staff/page',
    { params },
  );
}

/** 查询商户员工详情 */
export function getBaseMerchantStaff(id: number) {
  return requestClient.get<CmtBaseMerchantStaffApi.BaseMerchantStaff>(
    `/cmt/base-merchant-staff/get?id=${id}`,
  );
}

/** 新增商户员工 */
export function createBaseMerchantStaff(data: CmtBaseMerchantStaffApi.BaseMerchantStaff) {
  return requestClient.post('/cmt/base-merchant-staff/create', data);
}

/** 修改商户员工 */
export function updateBaseMerchantStaff(data: CmtBaseMerchantStaffApi.BaseMerchantStaff) {
  return requestClient.put('/cmt/base-merchant-staff/update', data);
}

/** 删除商户员工 */
export function deleteBaseMerchantStaff(id: number) {
  return requestClient.delete(`/cmt/base-merchant-staff/delete?id=${id}`);
}

/** 批量删除商户员工 */
export function deleteBaseMerchantStaffList(ids: number[]) {
  return requestClient.delete(
    `/cmt/base-merchant-staff/delete-list?ids=${ids.join(',')}`,
  );
}

/** 导出商户员工 */
export function exportBaseMerchantStaff(params: any) {
  return requestClient.download('/cmt/base-merchant-staff/export-excel', { params });
}
